<?php

/**
 * Lord_Form_Decorator_Errors
 * 
 * Декораторы для Errors
 * 
 * @author Игорь Будасов aka Lord <igor.budasov@gmail.com>
 */
 
class Lord_Form_Decorator_Errors extends Zend_Form_Decorator_Abstract
{
	protected $_placement = 'APPEND';
	
	public function render($content)
	{     
		$element  = $this->getElement();
		$messages = $element->getMessages();
		if (empty($messages)) {
			return $content;
		}
		
		// Получаем объект  Zend_Layout
		$layout = Zend_Layout::getMvcInstance();
		// Получаем объект  вида
		$view = $layout->getView();
		
		/**
		* формируем сообщение об ошибке
		* поскольку, на одно поле, ошибок может быть несколько - 
		* будем перебирать циклом
		*/
		$output = '<span id="tooltiper"><a title="';
		foreach($messages as $k=>$v)
		{   
			if(!is_array($v))
			{
				$output .=  '- ' . $view->translate($v) . '<br>';		
			}
			else
			{
				$output .= '- ' . $view->translate('unknown') . '<br>';		
			}
			
		}
		$output .=  '">
		<img src="/design/images/icons/error.png"></a></span>';

		$placement = $this->_placement;
		$separator = $this->getSeparator();

		switch ($placement) {
			case 'PREPEND':
				return $output . $separator . $content;
			case 'APPEND':
			default:
				return $content . $separator . $output;
		}
	}

}
?>
